#ifndef __UDSF_GPIO_C_
#define __UDSF_GPIO_C_

#include "udf_global.h"
/*
*   notice:
*   UDSF 同UDF编程：不可调用cstd-lib,只可调用"sdk_ifs_udk_cfg.h"、"sys_api.h"中列出的API函数。
*   UDSF文件内函数均需使用static修饰符，且UDF中以#include "UDSF.c"形式引用
*/

static void udsf_pinctrl_od( uint32_t gpio_pin_mask ,uint8_t enable) __attribute__((unused));
static void udsf_pinctrl_ae( uint32_t gpio_pin_mask ,uint8_t enable) __attribute__((unused));
static void udsf_pinctrl_ue( uint32_t gpio_pin_mask ,uint8_t enable) __attribute__((unused));
static void udsf_pinctrl_re( uint32_t gpio_pin_mask ,uint8_t enable) __attribute__((unused));
static void udsf_gpio_output_ctrl(uint32_t gpio_pin_mask,uint8_t enable) __attribute__((unused));
static void udsf_gpio_output_protect(uint32_t gpio_pin_mask,uint8_t enable) __attribute__((unused));
static void udsf_gpio_output(uint32_t pin,uint8_t value) __attribute__((unused));

static void udsf_pinctrl_od( uint32_t gpio_pin_mask ,uint8_t enable){
	if( enable){
		PIN_CTRL->OD |= gpio_pin_mask;
	}else{
		PIN_CTRL->OD &= ~gpio_pin_mask;
	}
}

static void udsf_pinctrl_ae( uint32_t gpio_pin_mask ,uint8_t enable){
	if( enable){
		PIN_CTRL->AE |= gpio_pin_mask;
	}else{
		PIN_CTRL->AE &= ~gpio_pin_mask;
	}
}

static void udsf_pinctrl_ue( uint32_t gpio_pin_mask ,uint8_t enable){
	if( enable){
		PIN_CTRL->UE |= gpio_pin_mask;
	}else{
		PIN_CTRL->UE &= ~gpio_pin_mask;
	}
}

static void udsf_pinctrl_re( uint32_t gpio_pin_mask ,uint8_t enable){
	if( enable){
		PIN_CTRL->RE |= gpio_pin_mask;
	}else{
		PIN_CTRL->RE &= ~gpio_pin_mask;
	}
}

static void udsf_gpio_output_ctrl(uint32_t gpio_pin_mask,uint8_t enable){
	if( enable ){
		GPIO->PMODE |= gpio_pin_mask;
	}else{
		GPIO->PMODE &= ~gpio_pin_mask;
	}
}

static void udsf_gpio_output_protect(uint32_t gpio_pin_mask,uint8_t enable) {
	if( enable ){
		GPIO->DOUTMASK |= gpio_pin_mask;
	}else{
		GPIO->DOUTMASK &= ~gpio_pin_mask;
	}
}

static void udsf_gpio_output(uint32_t pin,uint8_t value) {
	GPIO_PIN_ADDR(0,pin) = value;
}

#endif
